package com.nineclock.system;

import com.nineclock.common.entity.Result;
import com.nineclock.system.dto.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * @author 黑马程序员
 * @Company http://www.ithiema.com
 * @Version 1.0
 */
@Api(value = "企业基本信息配置", tags = "系统服务")
public interface SysCompanyControllerApi {

    @ApiOperation(value = "查询企业基本信息")
    public Result<SysCompanyDTO> queryCompanyInfo();

    @ApiOperation(value = "上传图片")
    public Result<String> uploadOSS(MultipartFile file) throws IOException;

    @ApiOperation(value = "更新企业基本信息")
    public Result updateCompanyInfo(SysCompanyDTO companyDTO);

    @ApiOperation(value = "获取当前企业主管理员")
    public Result<SysCompanyUserDTO> getCurrentAdmin();

    @ApiOperation("更换系统主管理员")
    public Result changeAdmin(SysChangeMainManagerDTO changeMainManagerDTO);

    @ApiOperation(value = "根据企业的关键字名称查询企业列表")
    public Result<List<SysCompanyDTO>> queryCompanyByName(String keyword);

    @ApiOperation(value = "申请加入企业")
    public Result applyJoinCompany(SysApplyJoinCompanyUserDTO sysApplyJoinCompanyUserDTO);

    @ApiOperation(value = "审核加入企业")
    public Result allowedJoinCompany(SysAllowedJoinCompanyUserDTO sysAllowedJoinCompanyUserDTO);

    @ApiOperation(value = "根据用户ID查询关联的企业列表")
    public Result<List<SysCompanyDTO>> queryCompanyListByUserId(Long userId);

}
